TPM Key Attestation
ユーザーがCAから証明書を発行してもらおうとするとき、証明書要求にはユーザーの公開鍵が記載されている。ユーザーが秘密鍵をどのような方法で保存しているかはセキュリティにとって重要である。WindowsマシンがActrive Directory Domain Servicesに参加するときもActive Directory Certification Serverによりマシン証明書が発行される。マシン証明書を発行する側からすれば、その証明書発行要求を出しているマシンの秘密鍵がTPMで守られているかが気になる。これを検証するのがTPM Key Attestationである。
Windows 8からはMicrosoft Platform Crypto Key Storage Provider (KSP)が保持する証明書の秘密鍵をTPMで保護することができるようになった。KSPはソフトウェアKSPの場合もTPM KSP場合もある。ソフトウェアKSPは管理者のcredentialで保護されている。TPM KSPであるほうが秘密鍵をエクスポートすることができないので安全である。
TPM 1.2にしろTPM 2.0にしろTPMはEndorsement Key(EK)を持つ。EKの公開鍵EKPubはユーザーから読み出すことができるが、秘密鍵EKPrivはユーザーから読み出すことができない。TPMによってはEKPubを含む証明書であるEKCertを持つものもある。
Trusted on user credential
マシンが提示したEKPubをそのまま信じる方法
Trust based on EKCert
EKCertを信じる方法。この場合はTPMのメーカーから提供された中間証明書とルート証明書を使用してチェインを検証する。
Trust based on EKPub
あらかじめEKPubのハッシュ値の一覧を用意しておく方法。
関連情報
TPM Key Attestation
Active Directory Domain Services の概要
Azure Active Directory Domain Services とは